package ${buildCodeRequest.codePackageDTO.daoPackage};

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import ${buildCodeRequest.codePackageDTO.queryPackage}.${buildCodeRequest.codeClassNameDTO.queryClassName};
import ${buildCodeRequest.codePackageDTO.getDomainPackage()}.${buildCodeRequest.codeClassNameDTO.getDomainClassName()};

@Mapper
public interface ${buildCodeRequest.codeClassNameDTO.getDaoClassName()} {

    ${buildCodeRequest.codeClassNameDTO.getDomainClassName()} ${buildCodeRequest.codeMethodDTO.queryByIdMethod}(${buildCodeRequest.primaryAttributeDTO.javaAttribute.attributeType} ${buildCodeRequest.primaryAttributeDTO.javaAttribute.attributeName});

    List<${buildCodeRequest.codeClassNameDTO.getDomainClassName()}> ${buildCodeRequest.codeMethodDTO.queryListMethod}(${buildCodeRequest.codeClassNameDTO.queryClassName} ${buildCodeRequest.codeClassNameDTO.queryObjectName});

    Integer ${buildCodeRequest.codeMethodDTO.countMethod}(${buildCodeRequest.codeClassNameDTO.queryClassName} ${buildCodeRequest.codeClassNameDTO.queryObjectName});

    int ${buildCodeRequest.codeMethodDTO.insertMethod}(${buildCodeRequest.codeClassNameDTO.getDomainClassName()} ${buildCodeRequest.codeClassNameDTO.getDomainObjectName()});

    int ${buildCodeRequest.codeMethodDTO.updateByIdMethod}(${buildCodeRequest.codeClassNameDTO.getDomainClassName()} ${buildCodeRequest.codeClassNameDTO.getDomainObjectName()});

    int ${buildCodeRequest.codeMethodDTO.deleteByIdMethod}(${buildCodeRequest.primaryAttributeDTO.javaAttribute.attributeType} ${buildCodeRequest.primaryAttributeDTO.javaAttribute.attributeName});

    List<String> selectDistinctList(${buildCodeRequest.codeClassNameDTO.queryClassName} ${buildCodeRequest.codeClassNameDTO.queryObjectName});

}